正则篇(六):用正则将文本标记为标签
资深的职业译员或者是项目经理一看标题就明白,这次,我要讲如何定义标签。
但是可能还是有些新人朋友,还是不太理解什么意思。这里有两个词:正则、标签。
正则是什么呢?请参考我之前写的:正则篇(一):认识正则表达式
标签又是什么呢?标签,英文名字是Tag,又是什么意思呢?技术百科里有一个定义:
A tag is a piece of information that describes the data or content that it is assigned to. Tags are nonhierarchical keywords used for Internet bookmarks, digital images, videos, files and so on. A tag doesn't carry any information or semantics itself.(摘自技术百科:https://www.techopedia.com/definition/5240/tag-metadata)
通过定义我们不难发现,
标签是信息,用来描述数据和内容。——这说明,如果丢了这个标签,就一定会丢掉某些信息。这在本地化的时候是绝对不允许的。
丢了标签研发会生气的,因为人家辛辛苦苦写好的代码,你给人家搞丢了。测试跑不通了😭,产品上不了线了😡,研发要挨骂了💢~
既然不能丢,我应该怎么办呢?
——当然是保留这些标签了。
可是问题来了:万一翻译看不懂这些标签,就给翻译了。这可怎么办?
所以,为了防止译员在看不懂的情况下,也不要乱来,项目经理就可以用正则表达式提前把这些不能动的“信息”内容(一般是代码、结构化标签等)标记起来,让译员不要动。
在memoQ中,需要用到正则表达式标注器。
这个操作是怎么样呢?我们来看两个案例。
案例一
这是一份游戏领域的常见文本,源文档是excel表格,其中C列是需要翻译的中文原文。但是我们发现,原文中有[color=f0abfe]
、[/color]
等代码块,不需要且不能翻译,翻译完成后要保留代码块。
这个文本的内容节选自九月份新出的一款游戏《哈利波特:魔法觉醒》中的剧情片段。
游戏文本的样式基本都是这样的,每一列的内容不重要,除了C列,其他都是我编的我编的我编的~只是为了给大家演示~
如果直接把这个文本导入到memoQ中,译员说丢就丢了~
就算没有丢,如果译员不懂,说不定就给改了~
所以,为了防止译员数据丢失,我们需要固定住原文中的代码,比如[color=#f0abfe]
、[/color]
和{Propstring}
。
(如果你还是听不懂,不要着急,往下看标记后的内容,我想应该会有些帮助吧~)
在这里,我们借助正则表达式标注器,添加一个正则:
(\[|{)\/*.+?(\}|])
当然,为了防止我以后还会用这个表达式,我可以保存到我的正则库里面,或者我保存为一个新的正则表达式标注器的过滤器供下次试用。
那么设置完成后,这类文本就会变为标签啦~(看红颜色的文本)
案例二
这是一份本地化项目的常见文本,源文档是PO格式,我们看其中几句话。
#: spyder/app/mainwindow.py:503msgid "An error occurred while creating a socket needed by Spyder. Please, try to run as an Administrator from cmd.exe the following command and then restart your computer: <br><br><span style='color: #555555'><b>netsh winsock reset</b></span><br>"
msgstr ""
这份文本如果直接导入后,同样,译员在处理的过程中会遇到一些问题。比如这里的<br>
、<span>
、</span>
和</b>
等。
因此,我们需要同样的方法,利用正则表达式标注器定义一条符合这几个内容的正则。你可以试一下:\<.+?>
。
这时候,如果译员丢了标签或被修改了内容,在确认句段的时候就会有警告提醒~
Opps~你的标签缺失啦~
如果是这样,如果通过正则表达式把这些代码块给标注起来,PM就再也不同担心代码被乱动啦~
当然我们在处理项目的过程中,会遇到各种各样的文本,比如XML、Json、String、txt、Markdown等等,它们都有可能含有标签和实体,但是我们可以有这个解决问题的方法,那就是通过正则表达式将这类文本标记为标签,可以从一定程度上降低这类质量问题发生可能性不是?
重点‼️
定义的前提是要先识别出这类文本,如果你都识别这类文本,那~是另一回事了~
如果你遇到难解析的文本,欢迎留言,我们可以一起尝试一下用正则解析?
好啦这期正则篇先到这里,下期我们分享用正则检查译文质量。
你还想学什么,欢迎来问~